// pages/clintEnd/shop/goods_detail/goods_detail.js
const db = wx.cloud.database();
Page({
  /**
   * 页面的初始数据
   */
  data: {
    detail:[],
    total_fee:[]
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function(options) {
    try {
      //指定id来加载对应数据
      // 指定id来加载对应数据
      console.log(options);
      const id = options.id;
      let that=this	//同样的 异步请求，let一个that
      const res = await db.collection('goods').where({
        _id: id
      }).get();
      const prices = res.data.map(item => item.price);
      const total_fee = prices.reduce((acc, cur) => acc + cur, 0);
        that.setData({
        detail: res.data,
        total_fee: total_fee
      });
    } catch (err) {
      console.error(err);
    }
  },
  async handleOrderPay(e) {
    console.log("点击支付");
    // try {
        // 假设用户始终拥有 token

        // 创建订单参数
        const total_fee = this.data.total_fee;
        let that = this;
        // const opacity = this.data.address.all;   
        // 遍历detail数组，将price字段的值相加
        // this.data.detail.forEach((v) => {
        //   totalPrice += v.price; // 累加价格
        // });
        // 随机生成订单编号
        const orderNum = this.generateOrderNumber();
        console.log(orderNum);
        wx.cloud.callFunction({
          name: "pay",
          data: {
            orderid: "" +orderNum,
            money: total_fee
          },
          success(res) {
            console.log("提交成功", res.result)
            that.pay(res.result)
          },
          fail(res) {
            console.log("提交失败", res)
          }
        })
        // 模拟获取支付数据
      //   const payData = {
      //     timeStamp: 'mockedTimeStamp',
      //     nonceStr: 'mockedNonceStr',
      //     package: 'mockedPackage',
      //     paySign: 'mockedPaySign',// 确保这个字段是一个字符串
      //     total_fee: total_fee
      // };
      //    // 调用支付函数发起微信支付
      //   this.pay(payData);

        // 查询后台订单
        // const res = await request({
        //     method: "post",
        //     data: { orderNum },
        // });

    //     // 支付成功提示
    //     wx.showToast({ title: "支付成功" });

    //     // 页面跳转
    //     wx.navigateTo({ url: "../store/store.wxml" });

    // } catch (error) {
    //     // 支付失败提示
    //     wx.showToast({ title: "支付失败" });
    //     console.log(error);
    // }
},
   generateOrderNumber:function() {
      const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
      let result = '';
      const charactersLength = characters.length;
      for (let i = 0; i < 10; i++) {
          result += characters.charAt(Math.floor(Math.random() * charactersLength));
      }
      return result;
  },
      //实现小程序支付
      pay(payData) {
        //官方标准的支付方法
        wx.requestPayment({
          timeStamp: payData.timeStamp,
          nonceStr: payData.nonceStr,
          package: payData.package, //统一下单接口返回的 prepay_id 格式如：prepay_id=***
          signType: 'MD5',
          paySign: payData.paySign, //签名
          success(res) {
            console.log("支付成功", res)
          },
          fail(res) {
            console.log("支付失败", res)
          },
          complete(res) {
            console.log("支付完成", res)
          }
        })
      },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})